<?php
/**
 * Zum setzen, loeschen und Ueberpruefen von vordefinierten Rechten,
 * welche einem Benutzer zugewiesen werden sollen
 *
 * @author		Joachim Ruf
 * @copyright	Copyright (c) 2003-2010 Loresoft Software (http://www.loresoft.de)
 * @license		http://yapary.loresoft.de/lizenzbedingungen     New BSD License
 *
 * */


Class Yapary_User_UserAccountRights
{
	private $oSql;



	function __construct(Yapary_Db_Sql_Connector $oSql )
	{
		$this->oSql = $oSql;
	}


	/**
	* Erstellt ein neues Administratorrecht
	* @param string $name : Name des Administrators, welchem das Recht zugewiesen werden soll
	* @param string $auth : Id welches zu dem zugehoerigen Recht gehoert
	* @return bool
	*/
	public function add ( $name, $auth )
	{
		if (!$this->exists($name, $auth)) {
			$oDbResult = $this->oSql->request("INSERT INTO user_account_right (Name, Auth) VALUES ('$name', '$auth')");
			return true;
		}

		return false;
	}


	/**
	* Loescht ein bereits bestehendes Administratorrecht
	* @param string $name : Name des Administrators, welchem das Recht zugewiesen werden soll
	* @param mixed $auth : Variable, URL, ... welches entfernt werden soll
	* @return bool
	*/
	public function delete ( $name, $auth )
	{
		if ($this->exists($name, $auth)) {
			$oDbResult = $this->oSql->request("DELETE FROM user_account_right WHERE Name='$name' AND Auth='$auth' ");
			return true;
		}

		return false;
	}


	/**
	* Liefert alle Rechte, welche der Administrator besitzt
	* @param string $name : Name des Administrators, welchem das Recht zugewiesen werden soll
	* @return array : array(0=>NameRight1, 1=>NameRight2, ...)
	*/
	public function &getList ( $name )
	{
		$arr = array();

		$oDbResult = $this->oSql->request("SELECT Auth FROM user_account_right WHERE Name='$name' ORDER BY Auth ");
		if ($oDbResult->getCount() >= 1) {
			while($row = $oDbResult->getNext()) {
				$arr[] = $row->Auth;
			}
		}

		return $arr;
	}


	/**
	* Prueft ob der Administrator das Recht fuer diese Authorisation besitzt
	* @param string $name : Name des Administrators, welchem das Recht zugewiesen werden soll
	* @param mixed $auth : Variable, URL, ... die bei isValid() ueberprueft werden soll
	* @return bool
	*/
	public function isValid ( $name, $auth )
	{
		return $this->exists($name, $auth);
	}



	/**
	* Prueft ob ein Recht existiert
	* @return bool
	*/
	public function exists ( $name, $auth )
	{
		$oDbResult = $this->oSql->request("SELECT Id FROM user_account_right WHERE Name='$name' AND Auth='$auth' ");
		if ($oDbResult->getCount() == 1) {
			return true;
		}

		return false;
	}


}

?>